all: scanner.c ast.o main.c main.h parser.tab.c parser.tab.h scope.c hash_table.c
	gcc -ggdb3 main.c scanner.c ast.o parser.tab.c parser.tab.h scope.c hash_table.c -lfl -o cflat -w

ast.o:  ast.h decl.c expr.c stmt.c type.c symbol.c param_list.c decl.h expr.h stmt.h type.h symbol.h param_list.h
	gcc -g -c decl.c expr.c stmt.c type.c symbol.c param_list.c -o ast.o -w

parser.tab.c parser.tab.h: srcflat.y
	bison -d -bparser -v srcflat.y

scanner.c: srcflat.lex
	flex -oscanner.c srcflat.lex

clean:
	rm scanner.c
	rm parser.tab.c
	rm parser.tab.h
	rm parser.output
	rm *.o
	rm cflat

